package com.zrf.gulimall.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zrf.gulimall.common.database.utils.PageUtils;
import com.zrf.gulimall.product.entity.AttrGroupEntity;
import com.zrf.gulimall.product.vo.AttrGroupVo;
import com.zrf.gulimall.product.vo.web.SpuItemAttrGroupVo;

import java.util.List;
import java.util.Map;

/**
 * 属性分组
 *
 * @author zrf
 * @email 120662332@qq.com
 * @date 2021-01-23 16:07:19
 */
public interface AttrGroupService extends IService<AttrGroupEntity> {

	/**
	 * 根据分类id分页查询
	 *
	 * @param params    分页参数
	 * @param catelogId 分类id
	 * @return 分页工具
	 */
	PageUtils queryPage(Map<String, Object> params, Long catelogId);

	/**
	 * 根据分类id查询所有
	 *
	 * @param catalogId 分类id
	 * @return 结果集
	 */
	List<AttrGroupEntity> queryByCatalogId(Long catalogId);

	/**
	 * 删除属性分组，并删除级联数据
	 *
	 * @param attrGroupIds 属性分组id
	 */
	void delete(List<Long> attrGroupIds);

	/**
	 * 查询分类下的所有分组及属性
	 * @param catalogId 分类id
	 * @return 结果集
	 */
	List<AttrGroupVo> queryWithAttrs(Long catalogId);

	/**
	 * 根据spuId和分类id查询
	 * @param spuId
	 * @param catalogId
	 * @return
	 */
	List<SpuItemAttrGroupVo> getAttrGroupWithAttrsBySpuId(Long spuId, Long catalogId);
}

